The invention relates to an operating method for an automation unit which is communicatively linked to at least one further automation unit. The communicative link existing between them means that the two automation units and software applications (programs) running thereon are communication partners in a communication session.
So that two communication partners, referred to below as partners for short, can communicate with one another over a communication link of whatever type, they need to know not only the respective communication protocol but also the respective interfaces, what interface the partner uses to receive data or to output data, and in what format these data are available.
To distinguish between the communication partners involved, a communication partner providing a functionality is referred to below as a server, and a communication partner requesting a functionality is referred to as a client.
A simple example of the general problem situation is, by way of example, a server providing an arithmetic application having the “adding” functionality under the function “add” (uint 32, uint 32, return uint 32). For a client for which this interface is known, the corresponding function request can be transferred to a program and the function can be requested. By contrast, this is not possible if it is not clear what functionality is provided by the remote partner, the server, and how the functionality can be retrieved.
To solve this problem, the prior art has to date provided for the respective applications, which are, by way of example, a server in a first case and a client in a second case, depending on the communication session, each to “know” the respective functionalities and the associated interfaces by assuming, by way of example, a common global variable and interface declaration, as supported by today's customary “relatively high level” programming languages, e.g. by using common variable declaration modules or interface declaration modules—the “header files” in the case of the programming language “C”.
This disadvantageously requires that, for every application, data of this type can be accessed when the application is created; this cannot be ensured or can be ensured only with difficulty, particularly when the individual application is developed on a distributed basis. In addition, it is also barely possible for the functionality of a first application to be subsequently adjusted, since it must always be assumed that such a change will result in inconsistencies for other applications which use the original interface to request this functionality.